//* ------------Sección codigo-usuario -------- */
package compiladortemperatura;
import java_cup.runtime.*;
%%

/* Nombre de la clase generada para el analizador lexico */
%class AnalizadorLexico
/* Indicar funcionamiento autonomo*/
%standalone
%8bit
/* Acceso a la columna y fila actual de analisis CUP */
%line
%column
/* Habilitar la compatibilidad con el interfaz CUP para el generador sintactico*/
%cup
/*-- DECLARACIONES --*/
%{/*Crear un nuevo objeto java_cup.runtime.Symbol con información sobre el token actual sin valor*/

  private Symbol symbol(int type){
    return new Symbol(type,yyline,yycolumn);
  }
/* Crear un nuevo objeto java_cup.runtime.Symbol con información sobre el token actual con valor*/
  private Symbol symbol(int type,Object value){
    return new Symbol(type,yyline,yycolumn,value);
  }
%}


/*-- MACRO DECLARACIONES --*/
Termino = \r|\n|\r\n
White = {Termino} | [ \t\f]
FinExpresion = [:]
A=[a-zA-Z]
Digito = [0-9]+|[0-9]*
%%

/*-------- Sección de reglas lexicas ------ */
<YYINITIAL> {


{FinExpresion}	 { return symbol(sym.DP);}
"kel"	{ return  symbol(sym.KELVIN); }
"far"	{ return  symbol(sym.FARENHEIT); }
"cen"	{ return  symbol(sym.CENTIGRADOS); }
"a"	{ return  symbol(sym.OP_CONVERSION); }

{Digito}	{ return symbol(sym.NUMERO, new Integer(yytext())); }

{White}	{ }
. {System.out.println("token ilegal <" + yytext()+ ">  linea: " + (yyline+1) + " columna: " + (yycolumn+1));
  }
}
